// 2DFilter.h: interface for the C2DFilter class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_2DFILTER_H__EE4CD518_AC40_4207_A248_92343500A839__INCLUDED_)
#define AFX_2DFILTER_H__EE4CD518_AC40_4207_A248_92343500A839__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ConctDomain.h"

#define MARKNUM	100

typedef struct 
{
	int nR;
	BYTE* pMark;
}RingMark;

class C2DFilter  
{
public:
	void RemoveMark(int inx, int iny, int inR);
	void doFilter();
	void ClearMap();
	void AddMark(int inx,int iny,int inR);
	void ReleaseMark(RingMark* inMark);
	void InitRingMark(RingMark* inMark,int inR);
	void Display();
	void CreatBuf(int inWidth,int inHeight);
	C2DFilter();
	virtual ~C2DFilter();

	BYTE* m_pbuf;
	BYTE* m_pProcBuf;
	int m_nwidth;
	int m_nheight;
	
	BITMAPINFOHEADER m_bih;
	BYTE* m_pDisBuf;

	CStatic* pView;
	CStatic* pProcView;
	RingMark m_mark[MARKNUM];
	int m_nThreshold;

	CConctDomain m_cDomain;
};

#endif // !defined(AFX_2DFILTER_H__EE4CD518_AC40_4207_A248_92343500A839__INCLUDED_)
